Historique : Lien popup

Ouvrir une fenêtre popup à partir d'un lien du wiki

J'ai modifié le fichier: /sdk/wiki2xhtml/class.wiki2xhtml.basic.php

En remplaçant (ligne 833):

	$attr = ' href="'.$this->protectAttr($this->protectUrls($url)).'"';
	$attr .= ($lang) ? ' hreflang="'.$lang.'"' : '';
	$attr .= ($title) ? ' title="'.$this->protectAttr($title).'"' : '';

par:

	$attr = ' href="'.$this->protectAttr($this->protectUrls($url)).'" ';
	$attr .= ($lang) ? ' hreflang="'.$lang.'"' : '';
	$attr .= ($title) ? ' title="'.$this->protectAttr($title).'"' : '';
	$attr .= (stristr($url,'http://')===FALSE) ? '' : ' target="_blank"';

Cela permet d'ouvrir dans une nouvelle fenêtre les liens commençant par http://

ex:

[www.google.com |http://www.google.com] ==> Ouvre le lien dans une nouvelle fenêtre

[www.google.com |www.google.com] ==>  Ouvre le lien dans la même fenêtre

C'est ce que j'ai utilisé sur le site: http://www.vivipic.com/wiki/wiki/Accueil

La méthode de Benjamin est correcte mais les anti-popus bloque la fenêtre qui s'ouvre... :(


Comme je ne voyais pas comment ouvrir une popup depuis un lien depuis ce sympatique ChuWiki je vous propose cette petite astuce :

  1. Le lien appel un fichier popup.php avec comme parametre la variable url
  2. popup.php ouvre l'url en popup puis retourne à ma page précédente

Fichier popup.php

 <html>
 <head>
 <title>popup</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </head>
 <?
 $url = $_GET['url']; 
 echo "
 <body>
 <SCRIPT language='javascript'>
    function OuvrirPopup(page,nom,option) {
       window.open(page,nom,option);
    }
 OuvrirPopup('".$url."','','top=10,left=10, resizable=yes, location=no, width=700, height=400, menubar=no, status=no, scrollbars=yes, menubar=no');
 window.history.go(-1);
 </SCRIPT>
 </body>";
 ?>
 </html>

Exemple d'appel : popup

Benjamin


J'ai implémenté la solution où l'on remplace 3 lignes par 4. Génial. Rien à dire de plus, et devrait être intégrée au ChuWiki que l'on télécharge. Merci beaucoup à toute l'équipe. Leyry Hynemonth.